Modern computer operating systems support several application programs executing concurrently. To communicate with external hardware devices, the application programs call input/output routines in the operating system. To facilitate communication between applications, an operating system may provide a message passing system or a method of opening “sockets” between applications.
However, using two different methods for communicating information is unnecessarily complex. It would be desirable to have a simplified method of communicating information from and to application programs. Furthermore, it would be desirable to have a messaging system that allows dormant applications to be immediately activated upon receiving information that is destined for the dormant application.